using UwinEducation.Domain.Entities;
using UwinEducation.Shared.Models;

namespace UwinEducation.Domain.IRepositories
{
    /// <summary>
    /// 教师仓储接口
    /// </summary>
    public interface ITeacherRepository : IRepository<Teacher, Guid>
    {
        /// <summary>
        /// 获取教师分页列表
        /// </summary>
        /// <param name="pageRequest">分页请求参数</param>
        Task<PagedResult<Teacher>> GetPagedListAsync(TeacherPageRequest pageRequest);


        /// <summary>
        /// 获取教师详情
        /// </summary>
        /// <param name="id">教师ID</param>
        Task<Teacher> GetDetailsByIdAsync(Guid id);

        /// <summary>
        /// 检查教师工号是否存在
        /// </summary>
        /// <param name="teacherNo">教师工号</param>
        /// <param name="excludeId">排除的教师ID</param>
        Task<bool> ExistsByTeacherNoAsync(string teacherNo, Guid? excludeId = null);
    }
}